1. Field of the Invention
The present invention relates generally to electronic device communication.
2. Description of the Related Art
Modern computing systems generally include a number of devices in communication with each other. For example, one device may be a host computer and another device may be a hard drive connected as a peripheral device. Communication (i.e., data transfer) protocols are used to enable communication between the devices. In addition, standard communication protocols have been developed to ensure communication compatibility between various devices. The standard communication protocols provide rigid frameworks and processes for conducting data transfers between devices. Thus, the standard communication protocols are interlocked protocols that follow a distinct series of events. For example, Serial Attached SCSI (SAS) represents a set of standard protocols used for communication to and from a storage device. Also, Serial AT Attachment (SATA) represents another protocol used for communication to and from a storage device.
Communication using a standard protocol, e.g., SAS or SATA, may involve transmitting a sequence of commands that are dependent upon one another, i.e., the sequence of commands rely upon one another for proper interpretation by a receiving device. If the sequence of dependent commands is interrupted during transmission, the receiving device may not be able to properly understand and respond to the commands. For example, if the link between two devices is temporarily lost during a transmission, the receiving device may only receive an uninterpretable portion of the sequence of dependent commands. In this situation, the two communicating devices are unable to further respond to each other, thus creating a deadlocked situation.
One prior art method for recovering from such a deadlocked situation in either a SAS or SATA communication process relies on an operating system of a device involved in the communication process to issue a command time-out. Once the command time-out is issued, the devices involved in the communication process are reset. However, issuance of the command time-out by the operating system may only occur after a substantial amount of time has elapsed. Thus, the prior art allows a deadlocked SAS or SATA communication process to exist for a substantial amount of time prior to correction.
In view of the foregoing, a method is needed to identify and respond to a deadlocked communication process in a timely and efficient manner.